Память, кэш и I/O

Зачем это знать:

  • PostgreSQL может быть “медленным” из-за диска (I/O), даже если CPU свободен.

  • Многие планы зависят от того, что в кеше, а что на диске.

Связанные темы:

Страницы, heap и TOAST

Планировщик запросов и EXPLAIN

WAL, Checkpoint и восстановление


Концепции

  • Чтение страниц heap/индекса может происходить из памяти (быстро) или с диска (медленно).

  • Сортировки/хэши могут выливаться на диск (temp files), если памяти не хватает.


Типовые I/O-узкие места

  • Большие seq scan.

  • Random I/O при Index Scan с большим количеством попаданий.

  • WAL fsync при интенсивной записи.

  • temp files от сортировок/агрегаций/hash join.


Что важно указывать в требованиях/обсуждениях

  • ожидаемые объёмы данных и рост,

  • RPS и пики,

  • допустимую задержку (SLA),

  • критичность durability (например, можно ли асинхронные подтверждения/батчи — решение архитектуры).

Последнее обновление